import time
import serial

def read_temp():
    ser = serial.Serial("/dev/ttyTemp", 9600)   # 选择串口，并设置波特率
    if ser.is_open:
        # hex(16进制)转换为bytes(2进制)，应注意Python3.7与Python2.7此处转换的不同
        send_data = bytes.fromhex('01 03 00 00 00 02 C4 0B')    # 发送数据转换为b'\xff\x01\x00U\x00\x00V'
        ser.write(send_data)   # 发送命令
        time.sleep(1)        # 延时，否则len_return_data将返回0，此处易忽视！！！
        len_return_data = ser.inWaiting()  # 获取缓冲数据（接收数据）长度
        if len_return_data:
            return_data = ser.read(len_return_data)  # 读取缓冲数据
            # bytes(2进制)转换为hex(16进制)，应注意Python3.7与Python2.7此处转换的不同，并转为字符串后截取所需数据字段，再转为10进制
            str_return_data = str(return_data.hex())
            # print(str_return_data)
            # print(str_return_data[6:10])
            hum = int(str_return_data[6:10], 16)/10.0
            temp = int(str_return_data[11:14], 16)/10.0
            # print("hum:",hum,"temp:",temp)
            return [temp,hum]
    else:
        return "null"


if __name__ == '__main__':
    while True:
        print(read_temp())
        time.sleep(1)
